package com.gonsin.ta.logic.parse;

import com.gonsin.ta.logic.exceptions.TaException;
import org.dom4j.Document;
import org.dom4j.Element;

import java.util.List;
import java.util.function.Consumer;

import static com.gonsin.ta.logic.parse.Constant.*;

public class ParserHelper {

    /**
     * xml 形式的主要解析过程
     *
     * @param document          documentList
     * @param parseOneChainConsumer parseOneChain 函数
     */
    public static void parseDocument(

            Document document, Consumer<Element> parseOneChainConsumer) {


        Element element = document.getRootElement();
        if(CHAIN.equals(element.getName())){
            parseOneChainConsumer.accept(element);
            return;
        }

        // 解析chain节点
        List<Element> chainList = document.getRootElement().elements(CHAIN);
        chainList.forEach(e -> {
            parseOneChainConsumer.accept(e);
        });

    }

    /**
     * 解析node节点
     */
    public static void parseNodeDocument(
            Document document, Consumer<Element> parseOneNodeConsumer) {

        Element element = document.getRootElement();

        if(NODE.equals(element.getName())){
            parseOneNodeConsumer.accept(element);
            return;
        }

        // 解析node节点
        List<Element> chainList = document.getRootElement().elements(NODE);
        chainList.forEach(e -> {
            parseOneNodeConsumer.accept(e);
        });
    }

}
